package com.xzmzhp.dao.activity;


import com.xzmzhp.dao.activity.SQL.ActivityPersonnelSql;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

/**
 * @author: 王源(xm)
 * @create: 2022-04-01 10:12
 * @program: ams
 * @description: 活动人员数据库交互接口
 */
@Repository
public interface ActivityPersonnelMapper{

    /**
     * 根据活动id查询人员id
     * @param activityId 活动id
     * @return 人员id数组
     */
    @Select("select personnel_id from activity_personnel where activity_id = #{activityId}")
    Integer[] findByActivityId(@Param("activityId") Integer activityId);

    /**
     * 添加活动人员信息
     * @param activityId 活动id
     * @param personnelId 人员id
     * @return 是否成功
     */
    @Insert("insert into activity_personnel values(null,#{activityId},#{personnelId})")
    Integer addActivityPersonnel(@Param("activityId") Integer activityId,@Param("personnelId") Integer personnelId);

    /**
     * 批量添加活动人员信息
     * @param activityId 活动id
     * @param personnelId 人员id集合
     * @return 是否成功
     */
    @InsertProvider(type = ActivityPersonnelSql.class,method = "addActivityPersonnel")
    Integer addBatchActivityPersonnel(@Param("activityId") Integer activityId,@Param("personnelId") Integer[] personnelId);

    /**
     * 删除活动人员信息
     * @param activityId 活动id
     * @param personnelId 活动人员id
     * @return 是否成功
     */
    @Delete("delete from activity_personnel where activity_id = #{activityId} and personnel_id = #{personnelId}")
    Integer delActivityPersonnel(@Param("activityId") Integer activityId,@Param("personnelId") Integer personnelId);

    /**
     * 删除活动人员信息
     * @param activityId 活动id
     * @param personnelId 活动人员id集合
     * @return 是否成功
     */
    @DeleteProvider(type = ActivityPersonnelSql.class,method = "delActivityPersonnel")
    Integer delBatchActivityPersonnel(@Param("activityId") Integer activityId,@Param("personnelId") Integer[] personnelId);
}
